package main

import "fmt"

/**
实现切片的添加
*/

func sliceAdd(value int, slices []int) []int {
	return append(slices, value)
}

/*
*
给切片制定位置添加一个值。
比如：[]int {0,0,0} 在第四位添加一个2.切片最终的结果是：[]int {0,0,0,0,4}
*/
func sliceAddValue(index int, value int, slices []int) []int {
	var slices2 []int
	//复制切片之前元素
	if index > len(slices) {

		slices2 = append(slices)
		for i := 0; i < index-len(slices); i++ {
			slices2 = append(slices2, 0)
		}
	} else {
		slices2 = append(slices[:index])
	}

	slices2 = append(slices2, value)

	//将index后面的元素添加到切片中
	for i := index + 1; i <= len(slices)-index; i++ {
		slices2 = append(slices2, slices[i])
	}

	return slices2
}

/**
实现切片的删除
index: 要删除的索引
slices : 原切片
*/

func sliceDelete(index int, slices []int) []int {
	var slices2 []int
	slices2 = append(slices[:index], slices[index+1:]...)
	return slices2

}

func main() {
	nums := []int{1, 2, 3, 4, 5}

	//for i := 0; i < 10; i++ {
	//	nums = sliceAdd(i,nums)
	//}
	//fmt.Println(nums)
	nums = sliceDelete(2, nums)
	//nums=sliceAddValue(4,25,nums)

	fmt.Println(nums)

}
